package com.ly.cloud.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.plugins.Page;
import com.ly.cloud.common.mybatisplus.plugins.PageInfo;
import com.ly.cloud.dto.BatchSetDto;
import com.ly.cloud.dto.RegisterInfoDto;
import com.ly.cloud.dto.RegisterSetDto;
import com.ly.cloud.entity.RegisterSetPo;
import com.ly.cloud.service.RegisterManagerService;
import com.ly.cloud.vo.RegisterInfoVo;
import com.ly.cloud.vo.RegisterTjVo;
import com.ly.cloud.web.utils.WebResponse;
/**
 * Description:该控制器用来用来操作注册管理模块
 * @author luhuacong
 * @date: 2018年12月29日
 */
@RestController
@RequestMapping("/regiserManager")
public class RegisterManagerController {

	@Resource
	private RegisterManagerService registerManagerService;
	
	/** 
	 * Method Name:insertRegisterSet
	 * Description:添加注册设置信息
	 * @param loginUserName 创建人
	 * @param dto 
	 * @return boolean
	 * @author LuHuaCong
	 * @date: 2018年12月26日
	 */
	@RequestMapping(value = "/insertRegisterSet", method = RequestMethod.POST)
	public WebResponse<Boolean> insertRegisterSet(@RequestHeader(required=false,value = "loginUserName") String loginUserName,@RequestBody RegisterSetDto dto){
		boolean isSuccess = registerManagerService.insertRegisterSet(dto,loginUserName);
		return new WebResponse<Boolean>().success(isSuccess);
	}
	
	/** 
	 * Method Name:insertRegisterInfo
	 * Description:插入学生注册信息
	 * @param dto 
	 * @param loginUserName 创建人
	 * @return Integer 成功插入的个数
	 * @author LuHuaCong
	 * @date: 2018年12月26日
	 */
	@RequestMapping(value = "/insertRegisterInfo", method = RequestMethod.POST)
	public WebResponse<Integer> insertRegisterInfo(@RequestHeader(required=false,value = "loginUserName") String loginUserName,@RequestBody  RegisterInfoDto dto){
		Integer count = registerManagerService.insertRegisterInfo(dto,loginUserName);
		return new WebResponse<Integer>().success(count);
	}
	
	/** 
	 * Method Name:deleteRegisterSetByid
	 * Description:删除注册设置信息
	 * @param xnxq 学年学期
	 * @return boolean 是否成功删除
	 * @author LuHuaCong
	 * @date: 2018年12月26日
	 */
	@RequestMapping(value = "/deleteRegisterSetByid", method = RequestMethod.GET)
	public WebResponse<Boolean> deleteRegisterSetByid(@RequestParam String xnxq){
		boolean isSuccess = registerManagerService.deleteRegisterSetByid(xnxq);
		return new WebResponse<Boolean>().success(isSuccess);
	}
	
	/** 
	 * Method Name:updateRegisterSet
	 * Description:修改注册设置信息
	 * @param dto 
	 * @param loginUserName 修改人
	 * @return boolean 是否修改成功
	 * @author LuHuaCong
	 * @date: 2018年12月26日
	 */
	@RequestMapping(value = "/updateRegisterSet", method = RequestMethod.POST)
	public WebResponse<Boolean> updateRegisterSet(@RequestHeader(required=false,value = "loginUserName") String loginUserName,@RequestBody  RegisterSetDto dto){
		boolean isSuccess = registerManagerService.updateRegisterSet(dto,loginUserName);
		return new WebResponse<Boolean>().success(isSuccess);
	}
	
	/** 
	 * Method Name:fdyRegisterList
	 * Description:辅导员一键注册
	 * @param loginUserName 修改人
	 * @param zczjList 注册主键集合
	 * @return Integer
	 * @author LuHuaCong
	 * @date: 2018年12月25日
	 */
	@RequestMapping(value = "/fdyRegisterList", method = RequestMethod.POST)
	public WebResponse<Integer> fdyRegisterList(@RequestHeader(required=false,value = "loginUserName") String loginUserName,@RequestBody List<String> zczjList){
		Integer count = registerManagerService.fdyRegisterList(zczjList,loginUserName);
		return new WebResponse<Integer>().success(count);
	}
	
	/** 
	 * Method Name:jwcRegisterList
	 * Description:教务处一键注册
	 * @param ids 主键集合
	 * @param loginUserName 修改人
	 * @return Integer
	 * @author LuHuaCong
	 * @date: 2018年12月25日
	 */
	@RequestMapping(value = "/jwcRegisterList", method = RequestMethod.POST)
	public WebResponse<Integer> jwcRegisterList(@RequestHeader(required=false,value = "loginUserName") String loginUserName,@RequestBody List<String> zczjList){
		Integer count = registerManagerService.jwcRegisterList(zczjList,loginUserName);
		return new WebResponse<Integer>().success(count);
	}
	
	/** 
	 * Method Name:fdyBatchSet
	 * Description:辅导员批量设置
	 * @param dto 
	 * @param xgr 修改人
	 * @return Integer
	 * @author LuHuaCong
	 * @date: 2018年12月25日
	 */
	@RequestMapping(value = "/fdyBatchSet", method = RequestMethod.POST)
	public WebResponse<Integer> fdyBatchSet(@RequestHeader(required=false,value = "loginUserName") String xgr,@RequestBody BatchSetDto dto){
		Integer count = registerManagerService.fdyBatchSet(dto,xgr);
		return new WebResponse<Integer>().success(count);
	}
	
	/** 
	 * Method Name:jwcBatchSet
	 * Description:教务处批量设置
	 * @param dto 
	 * @param xgr 修改人
	 * @return Integer
	 * @author LuHuaCong
	 * @date: 2018年12月25日
	 */
	@RequestMapping(value = "/jwcBatchSet", method = RequestMethod.POST)
	public WebResponse<Integer> jwcBatchSet(@RequestHeader(required=false,value = "loginUserName") String xgr,@RequestBody BatchSetDto dto){
		Integer count = registerManagerService.jwcBatchSet(dto,xgr);
		return new WebResponse<Integer>().success(count);
	}

	
	/** 
	 * Method Name:selectXsListByCon
	 * Description:根据条件查询学生注册信息
	 * @param page 
	 * @param dto 条件封装对象
	 * @return List<StudentInfoVo>
	 * @author LuHuaCong
	 * @date: 2018年12月25日
	 */
	@RequestMapping(value = "/selectXsListByCon", method = RequestMethod.POST)
	public WebResponse<PageInfo<RegisterInfoVo>> selectXsListByCon(@RequestParam int pageNum, @RequestParam int pageSize, @RequestBody RegisterInfoDto dto){
		Page<RegisterInfoVo> page = registerManagerService.selectXsListByCon(new Page<RegisterInfoVo>(pageNum, pageSize), dto);
		return new WebResponse<PageInfo<RegisterInfoVo>>().success(PageInfo.toPageInfo(page));
	}
	
	/** 
	 * Method Name:selectRegisterSetLlist
	 * Description:查询注册设置信息
	 * @param xnxq 学年学期
	 * @param sfzcxn	是否注册学年
	 * @return List<RegisterSetPo>
	 * @author LuHuaCong
	 * @date: 2018年12月25日
	 */
	@RequestMapping(value = "/selectRegisterSetLlist", method = RequestMethod.GET)
	public WebResponse<PageInfo<RegisterSetPo>> selectRegisterSetLlist(@RequestParam int pageNum, @RequestParam int pageSize,@RequestParam(required=false)String xnxq,
																		@RequestParam(required=false) String sfzcxn){
		Page<RegisterSetPo> page = registerManagerService.selectRegisterSetLlist(new Page<RegisterSetPo>(pageNum,pageSize),xnxq,sfzcxn);
		return new WebResponse<PageInfo<RegisterSetPo>>().success(PageInfo.toPageInfo(page));
	}
	
	/** 
	 * Method Name:selectRegisterTjList
	 * Description:查询学年学期学生注册统计信息
	 * @param pageNum 当前页
	 * @param pageSize 每页显示条数
	 * @param xnxq 学年学期
	 * @return Page<RegisterTjVo>
	 * @author LuHuaCong
	 * @date: 2018年12月27日
	 */
	@RequestMapping(value = "/selectRegisterTjList", method = RequestMethod.GET)
	public WebResponse<PageInfo<RegisterTjVo>> selectRegisterTjList(@RequestParam int pageNum, @RequestParam int pageSize,@RequestParam(required=false) String xnxq){
		Page<RegisterTjVo> page = registerManagerService.selectRegisterTjList(new Page<RegisterTjVo>(pageNum,pageSize),xnxq);
		return new WebResponse<PageInfo<RegisterTjVo>>().success(PageInfo.toPageInfo(page));
	}
}
